import {http} from "../../request/http";
Page({
  data:{
    // 左侧菜单数据
    leftMenuList:[],
    // 右侧数据
    rightContent:[],
    // 被点击的左侧的菜单
    currentIndex:0,
    // 滚动条
    scroTop:0
  },
  // 接口返回数据
  Cates:[],
  onLoad:function(options){
    this.getCates()
    /**
     * 小程序本地存储
     * wx.setStorageSync('key', data); wx.getStorageSync('key')
     * 1.先判断一下本地存储中有没有旧的数据
     * 2.没有旧数据，直接发送新的请求
     * 3.有旧的数据 同时 旧的数据也没有过期 就使用本地存储中的旧数据即可
     */
    const Cates = wx.getStorageSync('cates');
    if(!Cates){
      // 不存在 发送请求获取数据
      this.getCates()
    }else{
      // 有旧的数据，定义过期时间 
      if(Date.now()-Cates.time>1000*10){
        // 重新发送请求
        this.getCates()
      }else{
        // 可以使用旧数据
       this.Cates = Cates.data;
       let leftMenuList = this.Cates.map(v=>v.cat_name);
        let rightContent = this.Cates[0].children;
        this.setData({
          leftMenuList,
          rightContent
      })
      }
    }
  },
  // 获取分类数据
  async getCates(){
    // http({url:"/categories"})
    // .then((res)=>{
    //  this.Cates = res.data.message;
    //   // 把接口的数据存入到本地存储中
    //   wx.setStorageSync('cates',{time:Date.now(),data:this.Cates})
    //   // 获取左侧的大菜单数据
    //   let leftMenuList = this.Cates.map(v=>v.cat_name);
    //   // 获取右侧的数据
    //   // 获取cates的第1项的子数据
    //   let rightContent = this.Cates[0].children;
    //   this.setData({
    //     leftMenuList,
    //     rightContent,
    //   })
    // })
    const res = await http({url:"/categories"});
    this.Cates = res;
    wx.setStorageSync('cates',{time:Date.now(),data:this.Cates})
      // 获取左侧的大菜单数据
      let leftMenuList = this.Cates.map(v=>v.cat_name);
      // 获取右侧的数据
      // 获取cates的第1项的子数据
      let rightContent = this.Cates[0].children;
      this.setData({
        leftMenuList,
        rightContent,
      })
  },
  // 左侧菜单点击事件
  leftChange(e){
    // 获取被点击标题上的索引
    // 给data里面的currentIndex赋值
    // 根据不同的索引来渲染右侧的数据
    let {index} = e.currentTarget.dataset;
    let rightContent = this.Cates[index].children;
      this.setData({
        currentIndex:index,
        rightContent,
        // 重新设置右侧内容的scroll-view标签的距离顶部的距离
        scroTop:0
      })
  }
})